Grasshopper-C# 整理——Script

小zz Arch Z 2020-02-17原文 发表于


今年十月份学习的C#,主要用于Grasshopper的一些片段化的编程,编一些电池。所以学的也比较浅比较直接,能解决参数化设计中遇到的一些小问题就行。


我写一些自己容易混淆的概念和一些细节。系统的东西就不讲了,大家可以买一本C#的教程,或者参考Youtube上的一些教程,比如我参考了斯图加特大学Long的线上录屏教程

(官网:https://www.icd.uni-stuttgart.de/teaching/workshops/workshop-live-streaming-c-scripting-and-plugin-development-for-grasshopper/)。

 

同时,Rhino的命名空间(Namespace)查阅网站:

https://developer.rhino3d.com/api/RhinoCommon/html/R_Project_RhinoCommon.htm)这个是必备的。




Function

 

A way to package a piece of code so that we can conveniently re-useit many times (一个方法是把一些相关的语句组织在一起,用来执行一个任务的语句块。)

 也就是我所理解的面包机(pakage):将各种面包(reuse)放入机器中,得出产物。


例  子




Class


(user-defined data type)

当你定义一个类时,你定义了一个数据类型的蓝图。这实际上并没有定义任何的数据,但它定义了类的名称意味着什么,也就是说,类的对象由什么组成及在这个对象上可执行什么操作。对象是类的实例。构成类的方法和变量成为类的成员。成类的方法和变量成为类的成员。

 

例   子




细节Tips


1

RhinoApp.WriteLine("ArchZ");

这个命令的作用是在Rhino软件界面上输入命令(ArchZ)


2

Print(ArchZ.ToString());

Print(ArchZ);

两者的区别在于一个是以字符串的形式输出,一个则是以他本来的形式。


3

Int x=1,y=2;

同时赋值(更加方便)


4

break语句:立即终止循环;continue语句:终止当前循环到下一个循环;go to语句:跳出至标记位置;return语句:跳出循环以及包括的参数。




最后记录一下一位学长对我说的话,对我很有指导意义:即使是ZAHA做一个真实的建造项目,也主要是用GH加插件就能做出来了,在Code上的使用还是比较小的。比较重要的是思维逻辑,如何做出最适合的优化。


共勉!






--- Growing, Growing, Brighter Everyday ! ---